Claude E. Shannon proposed a mathematical theory of communication which has provided a basis for contemporary communication systems. Moreover, various contemporary encoding methods have been evolved in knowledge of the aforesaid mathematical theory. A list of information sources providing an overview of contemporary technical knowledge is provided in Table 1.
TABLE 1Known technical artEarlierdocu-mentDetailP1“Variable-length code”, Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Variable-length_codeP2“Run-length encoding”, Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Run-length_encodingP3“Huffman coding”, Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Huffman_codingP4“Arithmetic coding”, Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Arithmetic_codingP5“A Mathematic Theory of Communication”, Shannon, Claude E. (1948) (accessed 28 Nov. 2012) URL: http://cm:bell-labs.com/cm/ms/what/shaddonday/shaddon1948.pdfP6“Delta encoding”, Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Delta_codingP7Shannon's source coding theorem; Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia.org/wiki/Source_coding_theoremP8“Entropy” - Wikipedia (accessed 28 Nov. 2012)URL: http://en.wikipedia/wiki/Entropy
The definition of Shannon entropy is provided in documents P7 and P8 listed in Table 1. There is a multitude of different compression methods that are operable to compress entropy present in given data, and such methods are sometimes employed to modify entropy, for example for obtaining greater lossless compression ratios for the given data; such entropy-modifying methods include, for example, run-length-encoding (RLE) as described in document P2 in Table 1, variable-length-coding (VLC) as described in document P1 in Table 1, Huffman coding as described in document P3 in Table 1, Delta coding as described in document P6 in Table 1, and Arithmetic coding, namely Range coding, as described in document P4 in Table 1. Such methods are beneficially employed to compress data representative of alphabetic characters, numbers, bytes and words. However, such methods are not well adapted to compress given data at a bit-level, and for that reason are not well suited for compressing such given data that is susceptible to changing bit-by-bit.
Delta encoding, for example as described in document P6 in Table 1, is operable to generate delta values that can be positive or negative values from the positive original data values. Moreover, there are known implementations of Delta encoders for use in 8-bit, 16-bit or 32-bit wraparound, based upon used sizes of data elements. However, there is a lack of contemporary Delta encoders that are optimized for regimes other than 8-bit, 16-bit or 32-bit values. In particular, known Delta encoders are especially inefficient when coding original bit values, namely “0” and “1”, as three different values typically result therefrom, namely “−1”, “0” and “1”.
All kinds of data consume storage space, and communication system transmission capacity is needed when such data is to be moved from one location to another. As quantities of data increase, for example as a result of multimedia developments such as 3-dimensional video content, correspondingly more storage space and transmission capacity are needed to handle the data, and also more energy is needed as the quantity of data increases. Globally, quantities of data being communicated are progressively increasing with time; for example, the Internet contains a huge amount of data, some of which is stored in multiple copies. Moreover, there are methods which are contemporarily available for compressing entropy E associated with data, for example for use when reducing size of the data. Furthermore, there are also available methods of modifying entropy, for example Delta encoding and run-length encoding (RLE), but improved methods are required for providing even greater data compression than is contemporarily feasible.
There is also a need to optimize utilization of known Delta encoding methods for enabling faster and more efficient encoding of original data to be achieved, for example when all values in data elements in the original data are not used and/or a preceding or following encoding method employed in combination with Delta encoding methods requires a higher bit format than a bit dynamic originally used for data to be encoded.